package commonUtil.excption;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 2B键盘
 * @create: 2018-04-10 14:10
 * @desc 通用的Json返回类如果需要加其他的东西,那么
 * 继承此类就好了
 * @version 1.0
 **/
public class WebResult {

    /**
     * 状态码
     */
    private int code;
    /**
     * 提示信息
     */
    private String msg;
    /**
     * 用户要返回给浏览器的数据
     */
    private Map<String,Object> extend = new HashMap<String, Object>();

    /**
     * 用户执行成功返回的信息
     *
     * 无参
     *
     * @return
     */
    public static WebResult success(){
        WebResult result = new WebResult();
        result.setCode(100);
        result.setMsg("处理成功!");
        return result;
    }

    /**
     * 用户执行失败返回的信息
     *
     * 带参
     *
     * 带的参数是自定义的返回信息
     *
     * @return
     */
    public static WebResult success(String s){
        WebResult result = new WebResult();
        result.setCode(100);
        result.setMsg(s);
        return result;
    }

    /**
     * 用户执行失败返回的信息
     *
     * 无参
     *
     * @return
     */
    public static WebResult fail(){
        WebResult result = new WebResult();
        result.setCode(200);
        result.setMsg("处理失败!");
        return result;
    }

    /**
     * 用户执行成功返回的信息
     *
     * 带的参数是自定义的返回信息
     *
     * @return
     */
    public static WebResult fail(String s){
        WebResult result = new WebResult();
        result.setCode(200);
        result.setMsg(s);
        return result;
    }

    public WebResult add(String key, Object value){
        this.getExtend().put(key,value);
        return this;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Map<String, Object> getExtend() {
        return extend;
    }

    public void setExtend(Map<String, Object> extend) {
        this.extend = extend;
    }
}
